Conversation
Sometimes the math and the float strangeness result in teh last row of teh matrix to be -0.0 -0.0 1 (!). xinput doesn't like these values so force these to be 0.0 0.0 1. Replace float [9] to struct Mat9
|
This is exactly what I was looking for out of I tested this out to see if it would work with a Dell Laptop touchscreen (shows up as $ xinput_calibrator -v
DEBUG: XInputExtension version is 2.3
DEBUG: Skipping virtual master devices and devices without axis valuators.
DEBUG: Skipping device 'Virtual core XTEST pointer' id=4, does not report Absolute events.
DEBUG: Skipping device 'SynPS/2 Synaptics TouchPad' id=16, does not report Absolute events.
DEBUG: Skipping device 'DLL07BF:01 06CB:7A13 Touchpad' id=13, does not report Absolute events.
DEBUG: Selected device: ELAN Touchscreen
DEBUG: Not usbtouchscreen calibrator: Not a usbtouchscreen device
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 131 (XInputExtension)
Minor opcode of failed request: 37 (X_ChangeDeviceProperty)
Serial number of failed request: 17
Current serial number in output stream: 18This was on a pretty stock Debian Stretch system, with no extra |
|
Hi, BR |
|
That works, and outputs an appropriate transformation matrix! 😄 (Still get multi-monitor issues as described in #61, but that's expected with the rest of |
|
This patch made xinput_calibrator actually work at all on Ubuntu 18.04. The generated xorg.d section works too. Thanks 👍 |
|
is there any way for me to get a version of the binary with this pull request merged? I do not have a unix build env set up and want to avoid having to re-implement this in python to include on a prototype of a kiosk. Thank you all. |
libinput is replacing the old evdev interface in Xorg. Unfortunately this is not handled very wheel by xinput_calibrator.
This pull request, adds support for libinput. So xinput_calibrator is able to calibrate even when libinput replace evdev.
Moreover a tool called uinput-touch-simulation.c is added to simulate a touch screen using the uinput interface.